Leak fixes for gdb.
authorrobertlipe@gmail.com <robertlipe@gmail.com@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Wed, 6 Nov 2013 17:06:05 +0000 (17:06 +0000)
committerrobertlipe@gmail.com <robertlipe@gmail.com@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Wed, 6 Nov 2013 17:06:05 +0000 (17:06 +0000)
git-svn-id: http://gpsbabel.googlecode.com/svn/trunk@4644 f51c46e8-681c-474f-0cfe-069cfd0219fb

gpsbabel/gdb.cc

index a18f252703604851f673f7db706d37a9ddcde368..4045d96ce162e15ad9fc03b020a114b7db1e84d1 100644 (file)
@@ -1824,13 +1824,15 @@ write_route_cb(const route_head* rte)
     return;
   }
 
-  QString name;
+  char *tname;
   if (rte->rte_name == NULL) {
     snprintf(buf, sizeof(buf), "Route%04d", rte->rte_num);
-    name = mkshort(short_h, buf);
+    tname = mkshort(short_h, buf);
   } else {
-    name = mkshort(short_h, rte->rte_name);
+    tname = mkshort(short_h, rte->rte_name);
   }
+  xfree(tname);
+  QString name(tname);
 
   rte_ct++;    /* increase informational number of written routes */
 
@@ -1844,25 +1846,34 @@ static void
 write_track_cb(const route_head* trk)
 {
   gbfile* fsave;
-  QString name;
   char buf[32];
 
   if (ELEMENTS(trk) <= 0) {
     return;
   }
 
+  char* tname; 
   if (trk->rte_name == NULL) {
     snprintf(buf, sizeof(buf), "Track%04d", trk->rte_num);
-    name = mkshort(short_h, buf);
+    tname = mkshort(short_h, buf);
   } else {
-    name = mkshort(short_h, trk->rte_name);
+    tname = mkshort(short_h, trk->rte_name);
   }
 
+  QString name(tname);
+#if NEW_STRINGS
+#else
+  xfree (tname);
+#endif
+
   trk_ct++;    /* increase informational number of written tracks */
 
   fsave = fout;
   fout = ftmp;
   write_track(trk, name);
+#if NEW_STRINGS
+#else
+#endif
   finalize_item(fsave, 'T');
 
 }